package com.lekang.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 入住申请流程对象 check_in_approval
 * 
 * @author wjy
 * @date 2025-10-14
 */
public class CheckInApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 入住管理表外键编号 */
    @Excel(name = "入住管理表外键编号")
    private Long checkInManagementId;

    /** 审批人外键 */
    @Excel(name = "审批人外键")
    private Long approverId;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approvalStatus;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String approvalOpinion;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalTime;

    /** 当前步骤 */
    @Excel(name = "当前步骤")
    private String currentStep;

    /** 额外字段1 */
    @Excel(name = "额外字段1")
    private String extraField1;

    /** 额外字段2 */
    @Excel(name = "额外字段2")
    private String extraField2;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCheckInManagementId(Long checkInManagementId) 
    {
        this.checkInManagementId = checkInManagementId;
    }

    public Long getCheckInManagementId() 
    {
        return checkInManagementId;
    }

    public void setApproverId(Long approverId) 
    {
        this.approverId = approverId;
    }

    public Long getApproverId() 
    {
        return approverId;
    }

    public void setApprovalStatus(String approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus() 
    {
        return approvalStatus;
    }

    public void setApprovalOpinion(String approvalOpinion) 
    {
        this.approvalOpinion = approvalOpinion;
    }

    public String getApprovalOpinion() 
    {
        return approvalOpinion;
    }

    public void setApprovalTime(Date approvalTime) 
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime() 
    {
        return approvalTime;
    }

    public void setCurrentStep(String currentStep) 
    {
        this.currentStep = currentStep;
    }

    public String getCurrentStep() 
    {
        return currentStep;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("checkInManagementId", getCheckInManagementId())
            .append("approverId", getApproverId())
            .append("approvalStatus", getApprovalStatus())
            .append("approvalOpinion", getApprovalOpinion())
            .append("approvalTime", getApprovalTime())
            .append("currentStep", getCurrentStep())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
